unit-testing - 单元测试 os.File.Write 调用
全部标签 我想自动化这个场景。用户A将一个项目分配给用户B,用户B收到一条警告消息。为此,我想用不同的帐户启动两个不同的浏览器来测试这种交互。有可能这样做吗?如果是,如何? 最佳答案 看起来这个问题已经在我的示例代码中得到了回答:http://stackoverflow.com/questions/213430/selenium-rc-run-tests-in-multiple-browsers-automatically。firefox=Selenium::SeleniumDriver.new("localhost",4444,'*fire
我正在齐心协力围绕Rspec进行研究,以便转向更多的TDD/BDD开发模式。但是,我还有很长的路要走,并且在一些基础知识上苦苦挣扎:比如,我究竟什么时候应该使用模拟/stub,什么时候不应该?以这种情况为例:我有一个Site模型has_many:blogs和Blog模型has_many:articles。在我的Site模型中,我有一个回调过滤器,它为每个新站点创建一组默认的博客和文章。我想测试该代码,所以这里是:describeSite,"whencreated"doincludeSiteSpecHelperbefore(:each)do@site=Site.createvalid_s
背景:我有一组针对我的Rails3应用程序运行的Capybara集成测试。对于测试套件的其他部分,我使用的是Rspec。我的MacOSX开发机器上有一个selenium2.6.0独立服务器集线器。java-jarselenium-server-standalone-2.6.0.jar-rolehub我正在运行多个虚拟机,每个虚拟机都通过一个selenium节点连接到集线器:java-jarselenium-server-standalone-2.6.0.jar-rolewebdriver-hubhttp://0.0.1.12:4444/grid/registerport5555-bro
假设我们有多个线程都调用同一个函数:deffoo#dostuff...end100.timesdo|i|Thread.newdofooendend如果foo中当前有两个或多个线程,它们是否都在foo中共享相同的局部变量?这涉及到我的第二个问题。线程是否有单独的栈帧,或者它们是否在单个进程中共享栈帧?具体来说,当多个线程各自调用foo并且在foo返回之前,堆栈上是否有多个foo副本,每个副本都有自己的局部变量,还是堆栈上只有一份foo? 最佳答案 是的,它们共享相同的变量。这是Threads的关键元素,在只读上下文中很好,但如果它们写
我正在尝试调试在运行某些Ruby脚本时遇到的如下错误:ruby(47333,0x7fff72aee960)malloc:***errorforobject0x7f98b6a6e3f0:pointerbeingfreedwasnotallocated***setabreakpointinmalloc_error_breaktodebug知道如何实际设置这样的断点和调试吗?我想看看这是由Ruby本身还是一些extensio..我正在使用MacOSX10.7.3(Lion)和ruby1.8.7(2010-01-10patchlevel249)[universal-darwin11.0].
背景使用Paymill'ssubscriptionbilling开发应用程序特色。利用Rubywrapper,我创建了一个PaymentProvider类和规范如下。问题如何使测试支付失败?(例如卡被拒绝,或卡在未来的订阅付款中过期)Stripewouldletmedothisusingspecialcardnumbers但似乎没有针对Paymill的任何此类文档(英文)。payment_provider.rbclassPaymentProviderPaymill.api_key=ENV['PAYMILL_PRIVATE_KEY']defself.start_new_subscript
我有一个可以像这样配置的模块:moduleMyModulemattr_accessor:setting@@setting=:some_default_valueendMyModule.setting=:custom_value我正在使用RSpec测试不同的配置选项,发现设置在不同的测试之间保持不变,因为它们是类变量。在RSpec测试之间重新加载和重新初始化模块的最佳方法是什么? 最佳答案 我想到了这个解决方案:describeMyModuledobefore:eachdo#RemovestheMyModulefromobject-s
如果我有一个链接-=link_to'ajaX',ajax_delete_link_path(link),data:{:confirm=>'Areyousure?',:remote=>true}有一条路线:get'ajax_delete_link/:id',to:'links#ajax_delete_link',as::ajax_delete_link和一个链接Controller:defajax_delete_link@link=Link.find(params[:id])@link.destroyrespond_todo|format|format.jsendend和ajax_del
所以,我已经开始创建一些使用SeleniumRC的Ruby单元测试。直接在浏览器中测试我的网络应用程序。我正在使用Selenum-Client对于ruby。我已经为所有其他selenium测试创建了一个基类来继承。这会创建许多SeleniumDriver实例,并且会在每个实例上调用所有缺少的方法。这实质上是并行运行测试。其他人是如何实现自动化的?这是我的实现:classSeleniumTest这行得通,但如果一个浏览器失败,整个测试就会失败,并且无法知道它在哪个浏览器上失败。 最佳答案 你试过了吗SeleniumGrid?我认为它创
如何让我的Rails应用程序的测试以随机顺序执行?有没有使用rake的简单解决方案? 最佳答案 给你,在lib/tasks/tasks.rb中定义它namespace:testdonamespace:randomizedodesc"Randomizetests"Rake::TestTask.new(:all=>"db:test:prepare")do|t|t.libs运行:raketest:randomize:all请记住,在文件内测试仍将按照它们出现的顺序执行。我猜你可以猴子补丁测试单元来考虑到这一点。